// Created by zyq on 2025/3/27.
#include "iostream"

using namespace std;

class PersonBuilder {

public:
    virtual void buildHead() = 0;

    virtual void buildBody() = 0;

    virtual void buildFoot() = 0;
};

class ThiefThinPerson : public PersonBuilder {
    void buildHead() override {
        cout << "build Thin head" << endl;
    }

    void buildBody() override {
        cout << "build Thin body" << endl;
    }

    void buildFoot() override {
        cout << "build Thin foot" << endl;
    }


};

class FatPersonBuilder : public PersonBuilder {
    void buildHead() override {
        cout << "build Fat head" << endl;
    }

    void buildBody() override {
        cout << "build Fat body" << endl;
    }


};

int main() {

    PersonBuilder *personBuilder = new ThiefThinPerson();
    personBuilder->buildHead();
    personBuilder->buildBody();
    personBuilder->buildFoot();
    delete personBuilder;

//    PersonBuilder* personBuilder2 = new FatPersonBuilder();

    return 0;
}
